The embodiments of the present invention relate to extending the functionality and customizing the user interface of a computer program. The ability to customize a user interface and extend the functionality of a computer program is an important consideration in computer program development is deployed. In view of the complexity of modern computer programs and the many functions such computer programs can provide, it can be difficult for software developers to anticipate each possible use or extension of a computer program by an end user.
Typically, the particular extensions implemented for a given computer program will be organization specific. That is, the extensions implemented and used by one organization will likely be different from the extensions implemented and used within another organization for the same computer program. This often stems from the fact that the functionality of computer program that is needed by many organizations is driven largely by the particular business environment in which each organization utilizes the computer program.